|
This documentation is under active development and discussion! If you find errors or omissions in this document, please don’t hesitate to submit an issue or open a pull request with a fix. We also encourage you to ask questions and discuss any aspects of the project by email. |
Welcome to the MemType documentation, here you’ll learn everything about the MemType hardware, firmware, software tools and usage for any user level.
If you fancy one, you can get it from our tindie store!
Introduction
Technically speaking the MemType is an open source hardware password keeper.
This means it is basically a device focused in securely storing passwords.
The open source part means that we share all the
software source files, hardware design files and documentation under the
License conditions.
Having the passwords stored in a password keeper has several advantages:
-
No reusing same pass in different apps or webs.
-
More secure and long passwords can be used, no need to remember them.
-
No more forgotten passwords.
We like hardware password keepers but we couldn’t find one that satisfied our
usability needs, also they were very expensive! That’s why we decided to make
the MemType loaded with features and with a reduced BOM that results in a
simple low cost device that’s also great for DIY makers and hackers.
MemType features
-
Encrypted storagein the device using NOEKEON written in pure assembler! -
AES encrypted backupson the PC using the MemTypeTool GUI. -
Plug it into a
USB,no drivers or software for using it.[1]! Works as a HID keyboard. -
Works anywhere!. While others only work on webs or certain apps, the MemType can be used anywhere from webs, apps, terminals or anywhere it’s allowed to type using a keyboard. -
One click login. It stores andtypes for younot only thepasswordbut also theuserwithout any interaction from your part, and it also submits it! -
Add
delaystoenter the password when it’s asked, for example insshor login forms where the user and password are asked in two steps. -
Dynamic storage. You’renot limitedto a certain number of credentials, just fill the 2KB storage with them. -
Assign namesto the credentials so you can find them easy and fast to use them. -
Manage the device with the MemTypeTool GUI software, super easy and simple!
-
Truly multiplatform. The MemType works onany device with usbkeyboard capability like tablets, smart tv, and phones. -
Any keyboard layout. Load the keyboard layout you’ve got working in your OS using the MemTypeTool GUI. -
Truly Open SourceSoftware and Hardware.
Credentials
The data structure used by the MemType to store passwords and usernames is
called a credential. Appart from passwords and usernames it also stores a
field that stores the key combination to move from the user input to the
password input, called hop. It also includes a field for storing the key
combination to submit the login form or command, called submit. To help you
find the credential you need, each of them has a name stored in the name
field.
| Field | Description |
|---|---|
name |
The name that’ll be shown while using the device. |
user |
The username of the login. |
hop |
The sequence of keyboard keys to move from the user input field to the password one. Usually tab, sometimes Enter |
password |
The password that’ll be typed into the password input field. |
submit |
The sequence of keyboard keys to validate the login. Usually Enter. |
When a credential is applied, the MemType generates the key sequence like you
were typing it into your keyboard, excluding the name by the order of the table above.
In a login form, you focus the username field and then move the MemType joystick up and down looking for the credential you need. When you find the right credential, enter to apply it and the MemType will erase the credential name, type the username, move to the password input field, type it and submit. All this process is done much times faster than any person can type.
There are some cases where you may need a delay in a certain point, for example
when the login form asks for the user, validates it and then asks for the password.
Such delays can be made by the MemType using one special character when editing
the credential. This and more is explained in the Advanced uses section.
It’s easy to see how this credential structure can be used to securely store and
type other kind of data like commands or credit card numbers.
When buying online it’s faster and more secure to let the MemType type the credit card number than pulling out the creditcard with the number printed on it.
A way of accomplishing it would be by having all the fields empty except
the password field that would contain the credit card number and the name.
Links
N_O_D_E Video review
If you want a great video introduction and review of the MemType, check the following awesome video made by N_O_D_E.
Compare to others password keepers
Quick start
Open a text editor and connect the MemType to the USB port of your computer.
You’ll see the red led turning on indicating it’s being
powered correctly and it’s locked.
On the text editor it will write a welcome message indicating it’s firmware
version:
MemType 3.1.0
You don’t have to delete what it writes, it deletes it’s own text to write new
one, that’s how the MemType communicates with you.
Now you can unlock it entering the PIN, by default it’s 0000. To enter the PIN
use the joystick:
-
up increases the number.
-
down decreases.
-
towards the connector accepts the number.
-
the opposite joystick movement to cancel.
We’ll refer to these movements up, down, enter and back respectively.
You should have now the pin entered:
PIN: 0000
One more enter and it’ll validate and show the name of the first credential and the green led will be on. If the PIN is incorrect an error message will be displayed:
PIN ERR
The MemType comes preloaded with 3 dummy credentials so you can play the first time. Move up and down to see their names, apply one with the enter movement on the joystick, see the details with one back movement and lock the device with one more back movement (2 in total) turning the red led on again.
That’s the basic usage of the MemType, now to be useful it has to contain the
credentials you’ll use, setup a different PIN, and be loaded with the same
keyboard layout as your operating system or you’ll see strange characters. To do
all this management on the device there is an easy to use Graphical User
Interface software called MemTypeTool GUI.
MemTypeTool GUI
The MemTypeTool GUI can be downloaded from : https://github.com/oyzzo/MemTypeTool
It is developed using python 2.7 , pyqt4, and libusb so it should work anywhere you can get this dependencies running. It has been tested on Windows, Linux and MacOS.
To run the MemTypeTool:
python main.py
Windows installation
| It has been tested in windows up to 8.1. It has been reported to not work in windows 10. |
| Using a linux virtual machine can be a workaround for the moment. |
-
Install python 2.7.
-
Add python to your path:
C:\Python27\;C:\Python27\Scripts\
-
Download and install PyQt for python 2.7.
-
Download, unzip and install libusb:
-
https://github.com/walac/pyusb/archive/master.zip
python setup.py install
-
-
Plug in the Memtype and let windows install the drivers for the device (we’ll change them in the next step).
-
Download and extract libusb-win32:
-
Execute install-filter-win (find it inside extracted folder, under /bin/x86 or other if your windows is 64bits).
-
Select Install Filter, next.
-
-
Select Memtype (pid a033) and click Install
-
Done!!! you can check it with the testlibusb-win found next to install-filter-win:
Linux installation
Example ubuntu installation steps:
apt-get install python apt-get install python-pyqt4 pip install pyusb
MacOS installation
Usage
Setting the keyboard layout
Using the GUI you can change the MemType keyboard layout to match your computer keyboard layout. The current available layouts files are located under keyboard directory.
Setting the P.I.N.
Adding,Editing and Deleting credentials
Exporting and importing from file
Adding delays to credentials
Using the MemType
P.I.N. Unlock
Use a credential
Credential details
Lock the device
Advanced uses
MemType library
Hardware
PCB
BOM
Firmware
License
F.A.Q.
-
Can I make a MemType myself?
Yes! It’s a great DIY project!. You can make your PCB using the design files or order one from OSHpark, buy the components, solder them, compile the firmware and burn it into the microcontroller!
-
How many credentials can be stored?
The capacity of the credentials storage on the MemType is
2KB. Credentials are stored dinammically soit’ll depend on the lengthof the name, username, password etc… -
Can I make a backup of my credentials?
Having a backup of the credentials is always a good idea. You can export an encrypted file from the
MemTypeGUIcontainning all your credentials.